#include "Analyse_events.h"

Events * analyse_events(char fichier_events[CHAR_MAX],char parcours[CAP_MAX][CHAR_MAX],int *nbp)
{
FILE *fichier;
Personnel *tab,temp;
Events *str;
int c,i,j,k,l,M,nl=0,np=1; //nl:nombre de lignes, np: nombre de personnels
char cap[CHAR_MAX];
fichier= fopen(fichier_events, "r") ;
if(fichier==NULL)
{
printf("impossible d'ouvrir le fichier\n");
}
else
{
	while(c!=EOF)
	{
	c=fgetc(fichier);
	if (c=='\n') 
	{
	nl++;
	}
	}
tab = (Personnel *) malloc(sizeof(Personnel) * nl) ;
fseek (fichier,0,SEEK_SET);
	for(i=0;i<nl;i++)
	{
	fscanf(fichier,"%s\t%ld\t%s\n",tab[i].time,&tab[i].ID,tab[i].capteur);
	}
}

//Tri du tableau dans l'ordre croissant des ID
for (i=1;i<nl;i++)
{
temp=tab[i]; j=i;
while( j>0 && (tab[j-1].ID)>temp.ID)
{
tab[j]=tab[j-1];
j--;
}
tab[j]=temp;
}

//nombre de personnel
for(i=1;i<nl;i++)
{
if (tab[i].ID != tab[i-1].ID) {np++;}
}
*nbp=np;
str = (Events *) malloc(sizeof(Events) * np) ;
//initialisation de la réponse des capteurs à zéro (Structure Events)
for(i=0;i<np;i++)
{
for(j=0;j<NBRE_CAPTEURS;j++)
{
str[i].capteur[j]=0;
}
}

// A VERIFIER
//remplissage de la structure Events en binaire
M=tab[0].ID;i=0;j=0;k=0;l=0;
while(i<nl)
{
while((M==tab[i].ID) && (i<nl) && (l<CAP_MAX) )
{
str[j].ID=tab[i].ID;
if (strcmp(tab[i].capteur,parcours[l]) == 0) 
{
	str[j].capteur[k]=1;
	strcpy(str[j].time[k],tab[i].time);
	i++;
}
else {str[j].capteur[k]=0;}
l++;
k++;
}
j++;k=0;l=0;
M=tab[i].ID;
}

//Test d'affichage
/*for(j=0;j<np;j++)
{
printf("\tID:    %ld\n",str[j].ID);
printf("E01:   %d\tTime: %s\n",str[j].capteur[0],str[j].time[0]);
printf("C01:   %d\tTime: %s\n",str[j].capteur[1],str[j].time[1]);
printf("S01:   %d\tTime: %s\n",str[j].capteur[2],str[j].time[2]);
printf("L01:   %d\tTime: %s\n",str[j].capteur[3],str[j].time[3]);
printf("C02:   %d\tTime: %s\n",str[j].capteur[4],str[j].time[4]);
printf("I01:   %d\tTime: %s\n",str[j].capteur[5],str[j].time[5]);
printf("L02:   %d\tTime: %s\n",str[j].capteur[6],str[j].time[6]);
printf("V01:   %d\tTime: %s\n",str[j].capteur[7],str[j].time[7]);
printf("D01:   %d\tTime: %s\n",str[j].capteur[8],str[j].time[8]);
printf("B01:   %d\tTime: %s\n",str[j].capteur[9],str[j].time[9]);
printf("M01:   %d\tTime: %s\n",str[j].capteur[10],str[j].time[10]);
printf("SOUT:  %d\tTime: %s\n",str[j].capteur[11],str[j].time[11]);
printf("POUT:  %d\tTime: %s\n",str[j].capteur[12],str[j].time[12]);
printf("EBOLA: %d\tTime: %s\n",str[j].capteur[13],str[j].time[13]);
printf("\n");
}*/

fclose(fichier);
return (str);
}
